(in-package :TRAPS)
; Generated from #P"macintosh-hd:hd3:CInterface Translator:Source Interfaces:vm_prot.h"
; at Sunday July 2,2006 7:24:10 pm.
; 
;  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
;  *
;  * @APPLE_LICENSE_HEADER_START@
;  * 
;  * The contents of this file constitute Original Code as defined in and
;  * are subject to the Apple Public Source License Version 1.1 (the
;  * "License").  You may not use this file except in compliance with the
;  * License.  Please obtain a copy of the License at
;  * http://www.apple.com/publicsource and read it before using this file.
;  * 
;  * This Original Code and all software distributed under the License are
;  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
;  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
;  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
;  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
;  * License for the specific language governing rights and limitations
;  * under the License.
;  * 
;  * @APPLE_LICENSE_HEADER_END@
;  
; 
;  * @OSF_COPYRIGHT@
;  
;  
;  * Mach Operating System
;  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
;  * All Rights Reserved.
;  * 
;  * Permission to use, copy, modify and distribute this software and its
;  * documentation is hereby granted, provided that both the copyright
;  * notice and this permission notice appear in all copies of the
;  * software, derivative works or modified versions, and any portions
;  * thereof, and that both notices appear in supporting documentation.
;  * 
;  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
;  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
;  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
;  * 
;  * Carnegie Mellon requests users of this software to return to
;  * 
;  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
;  *  School of Computer Science
;  *  Carnegie Mellon University
;  *  Pittsburgh PA 15213-3890
;  * 
;  * any improvements or extensions that they make and grant Carnegie Mellon
;  * the rights to redistribute these changes.
;  
; 
;  
; 
;  *	File:	mach/vm_prot.h
;  *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
;  *
;  *	Virtual memory protection definitions.
;  *
;  
; #ifndef	VM_PROT_H_
; #define	VM_PROT_H_
; 
;  *	Types defined:
;  *
;  *	vm_prot_t		VM protection values.
;  

(def-mactype :vm_prot_t (find-mactype ':signed-long))
; 
;  *	Protection values, defined as bits within the vm_prot_t type
;  
(defconstant $VM_PROT_NONE 0)
; #define	VM_PROT_NONE	((vm_prot_t) 0x00)
(defconstant $VM_PROT_READ 1)
; #define VM_PROT_READ	((vm_prot_t) 0x01)	/* read permission */
(defconstant $VM_PROT_WRITE 2)
; #define VM_PROT_WRITE	((vm_prot_t) 0x02)	/* write permission */
(defconstant $VM_PROT_EXECUTE 4)
; #define VM_PROT_EXECUTE	((vm_prot_t) 0x04)	/* execute permission */
; 
;  *	The default protection for newly-created virtual memory
;  
(defconstant $VM_PROT_DEFAULT 3)
; #define VM_PROT_DEFAULT	(VM_PROT_READ|VM_PROT_WRITE)
; 
;  *	The maximum privileges possible, for parameter checking.
;  
(defconstant $VM_PROT_ALL 7)
; #define VM_PROT_ALL	(VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
; 
;  *	An invalid protection value.
;  *	Used only by memory_object_lock_request to indicate no change
;  *	to page locks.  Using -1 here is a bad idea because it
;  *	looks like VM_PROT_ALL and then some.
;  
(defconstant $VM_PROT_NO_CHANGE 8)
; #define VM_PROT_NO_CHANGE	((vm_prot_t) 0x08)
;  
;  *      When a caller finds that he cannot obtain write permission on a
;  *      mapped entry, the following flag can be used.  The entry will
;  *      be made "needs copy" effectively copying the object (using COW),
;  *      and write permission will be added to the maximum protections
;  *      for the associated entry. 
;  
(defconstant $VM_PROT_COPY 16)
; #define VM_PROT_COPY            ((vm_prot_t) 0x10)
; 
;  *	Another invalid protection value.
;  *	Used only by memory_object_data_request upon an object
;  *	which has specified a copy_call copy strategy. It is used
;  *	when the kernel wants a page belonging to a copy of the
;  *	object, and is only asking the object as a result of
;  *	following a shadow chain. This solves the race between pages
;  *	being pushed up by the memory manager and the kernel
;  *	walking down the shadow chain.
;  
(defconstant $VM_PROT_WANTS_COPY 16)
; #define VM_PROT_WANTS_COPY	((vm_prot_t) 0x10)

; #endif	/* VM_PROT_H_ */


(provide-interface "vm_prot")